import java.util.Arrays;
import java.util.Scanner;

/* 
 * 自定义数组扩容规则，当已存储元素数量达到总容量的 80%时，扩容 1.5 倍。
*/
public class ArrayExpansion {
    public static void main(String[] args) {
        
        int[] arr = new int[10];

        int count = 0;
        // int inputLenth = 18 ;

        System.out.print("输入要添加的元素个数：");
        Scanner scanner = new Scanner(System.in);
        int inputLenth = scanner.nextInt();
        scanner.close();

        for(int i =0 ; i< inputLenth; i++){
            //扩容
            if(count * 1.0 / arr.length >= 0.8){
                System.out.println("------已存储元素数量达到总容量的80%，自动扩容 1.5 倍------");
                int[] tempArr = new int[(int)(arr.length * 1.5)];
                // 赋值原数组数据到新数组
                System.arraycopy(arr, 0, tempArr, 0, arr.length);
                arr = tempArr ;
            }

            arr[i] = i+1;
            count ++ ;
            // System.out.println("count = "+count+",arr.length = "+arr.length+"容量比例："+(count/ arr.length )+",添加第"+(i+1)+"个元素，已添加个数="+count+"，Arr = "+Arrays.toString(arr));
            System.out.println("容量比例："+(int)(count * 1.0 / arr.length * 100)+"%，已添加个数="+count+"，数组长度="+arr.length+",Arr="+Arrays.toString(arr));
        }
    }
}
